<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //预解析案例
        //案例1
        // var num = 10;
        // fun();

        // function fun() {
        //     console.log(num); //undefined
        //     var num = 20;
        // };


        //相当于执行了以下操作
        // var num; //变量提升

        // function fun() { //函数提升
        //     var num;
        //     console.log(num);
        //     num = 20;
        // };

        // num = 10;
        // fun();

        console.log("================================");
        //案例2
        // var num = 10;

        // function fn() {
        //     console.log(num);
        //     var num = 20;
        //     console.log(num);
        // }
        // fn();

        //相当于以下代码
        // var num;

        // function fn() {
        //     var num;
        //     console.log(num); //undefined
        //     var num = 20;
        //     console.log(num); //20
        // }
        // num = 10;
        // fn();

        console.log("====================================");
        //案例3 面试题
        f1();
        console.log(c);
        console.log(b);
        console.log(a);

        function f1() {
            var a = b = c = 9;
            console.log(a);
            console.log(b);
            console.log(a);
        }
        //预解析,相当于以下代码
        // function f1() {
        //     //相当于var a=9;b=9;c=9;    b和c直接赋值 没有var声明 当全局变量看
        //     //集体声明 var a=9;b=9;c=9; 
        //     var a = b = c = 9;
        //     console.log(a);
        //     console.log(b);
        //     console.log(a);
        // }
        // f1();
        // console.log(c);
        // console.log(b);
        // console.log(a);
    </script>
</head>

<body>

</body>

</html>